Roman Numeral Algorithm in C++
Saya akan membahas tentang algoritma perubahan angka ke symbol romawi dengan menggunakan bahasa C++. anda juga bisa download script dan exeny untuk latihan..
Kali ini request dari saudara tercinta yang lagi menempuh studi di seatle Amrik sana... wah ternyata C++ dipake juga di kurikulum sana ya...
saya tiba2 mendapatkan gambar yang berupa pertanyaan.. ya garis besar pertanyaany tentang mengubah inputan angga menjadi symbol romawi ( Roman Numeral )..
Berikut adalah garis besar program yang diminta :
input program adalah berupa integer yang diberi batas antara 1-3000, dan jika melebihi batas inputan maka, program akan memberikan warning dan langsung terminated program..
output dari program adalah berupa angka romawi (Roman Numeral) dari inputan.. Prosesny? yang itu dia yang saya kerjakan.. hahahaha.... (gak lucu ya... TT )..
Semuany akan ditulis dengan bahasa C plus plus...
Berikut source code yang saya buat beserta sedikit dokumentasi..
#include<constrea.h>
#include<string.h>
#include<stdlib.h>
constream out;
void main()
{
}int year;
out.clrscr();
// tampung nilai symbol ke dalam array..
char symbolOnes[9][5] = {"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
char symbolTens[9][5] = {"X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};
char symbolHund[9][5] = {"C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};
out<<"Enter a year between 1 and 3000: ";
cin>>year;
out<<endl<<" year : "<<year;
if(year<=0 || year>3000)
{
out<<endl<<endl<<"Wrong Input! Program Terminated...";
getch();
exit(27); // menggunakan library stdlib.h untuk memanggil/menggunakan fungsi exit(27); berfungsi untuk terminate program..
}
int d1,d2,d3,d4;
// algoritma untuk mendapatkan nilai pecahan.. dan masing2 ditampung ke variabel d1,d2,d3,d4
d4 = year % 10;
year = (year-d4) / 10;
d3 = year % 10;
year = (year-d3) / 10;
d2 = year % 10;
year = (year-d2) / 10;
d1 = year;
out<<endl<<endl;
out<<"d1 = "<<d1<<endl;
out<<"d2 = "<<d2<<endl;
out<<"d3 = "<<d3<<endl;
out<<"d4 = "<<d4<<endl;
char *romanYear = "";
for(int i=0;i<d1;i++)
{
if(i==0) strcpy(romanYear,"M");
else strcat(romanYear,"M");
// strcpy : untuk mengkopi char "M" ke dalam variabel romanYear. strcpy(destination,source)
// strcat : untuk melakukan concat, yaitu penggabungan 2 string,(syarat: destination harus ada isi). strcat(destination,source)
}
out<<endl<<"Roman Year (first process) : "<<romanYear;
if(d2!=0)
{
strcat(romanYear,symbolHund[d2-1]);
}
out<<endl<<"Roman Year (second process) : "<<romanYear;
if(d3!=0)
{
strcat(romanYear,symbolTens[d3-1]);
}
out<<endl<<"Roman Year (third process) : "<<romanYear;
if(d4!=0) { strcat(romanYear,symbolOnes[d4-1]); }
out<<endl<<"Roman Year (last process) : "<<romanYear<<endl;
getch();
berikut screenshot dari aplikasi Roman Numeral Converter : 
Download Roman Numeral Algorithm in C++
Semoga artikel ini dapat berguna... ( untuk sodaraku ya pasti berguna.. )
Salam Hangat,
Yupi Sugianto, S.Kom.
berikut screenshot dari aplikasi Roman Numeral Converter : 
Download Roman Numeral Algorithm in C++
Semoga artikel ini dapat berguna... ( untuk sodaraku ya pasti berguna.. )
Salam Hangat,
Yupi Sugianto, S.Kom.

Leave a Comment